<?php

namespace Admin\Model;

use Think\Model\RelationModel;

class UserModel extends RelationModel
{
    /**
     * 多对对关联关系
     */
    protected $_link = array(
        'auth_group' => array(
            'mapping_type' => self::MANY_TO_MANY,
            'mapping_name' => 'groups',
            'foreign_key' => 'uid',
            'relation_foreign_key' => 'group_id',
            'relation_table' => 'auth_group_access' //此处应显式定义中间表名称，且不能使用C函数读取表前缀
        )
    );

    /**
     * 自动验证
     */
    protected $_validate = array(
        array('username','require','用户名必须！'), //默认情况下用正则进行验证
        array('email','require','邮箱必须！'), //默认情况下用正则进行验证
        array('mobile','require','手机号必须！'), //默认情况下用正则进行验证
        array('username','','用户名已经存在！',0,'unique',1), // 在新增的时候验证name字段是否唯一
        array('mobile','','该邮箱已经存在！',0,'unique',1), // 在新增的时候验证name字段是否唯一
        array('email','','该手机号已经存在！',0,'unique',1), // 在新增的时候验证name字段是否唯一
        array('username', '5,20', '用户名的长度必须是5-20之间！', 0, 'length',1), // 当值不为空的时候判断是否在一个范围内
        array('check_password','password','确认密码不正确',0,'confirm'), // 验证确认密码是否和密码一致
        array('mobile', 'isMobile','手机号格式不正确',0,'callback'), //验证手机号
        array('mobile', 'isEmail','邮箱格式不正确',0,'callback'), //验证邮箱格式和是否为空
    );

    /**
     * @var array 自动完成
     */
    protected $_auto = array (
        array('password','set_password',3,'function') , // 对password字段在新增和编辑的时候使md5函数处理
        array('created_at','time',1,'function'), // 对update_time字段在更新的时候写入当前时间戳
        array('token','make_token',1,'function'), // 对token字段在新增是自动生成token
    );

    /**
     * 正则验证邮箱
     */
    function isEmail($check_mail)
    {
        $check_mail = "/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/";//定义正则表达式
        if (isset($_POST['email']) && $_POST['email'] != "") {            //判断文本框中是否有值
            $mail = $_POST['email'];                                   //将传过来的值赋给变量$mail
            if (preg_match($check_mail, $mail)) {                       //用正则表达式函数进行判断
                return  true;
            } else {
                return  false;
            }
        }
    }


    /**
     *正则验证手机号
     */
    function isMobile($mobile)
    {
        if (!is_numeric($mobile)) {
            return false;
        }
        return preg_match('#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,6,7,8]{1}\d{8}$|^18[\d]{9}$#', $mobile) ? true : false;
//        return preg_match('/^1[3|5|7|8][0-9]\d{4,8}$/', $mobile) ? true : false;
    }



}